Skip to main content
[screenshot]

Spacewar! for the PDP-1


Published 1962


This is a rather unusual machine, and the commands to use it are non-intuitive. Press the LEFT CONTROL key AND the ENTER key at the same time to load the Spacewar! tape. The machine will blink many lights and the game will come up on the "screen" portion of the emulator in the upper left corner.

There are two ships, the "wedge" and the needle. Two players are required to play. To control the "Wedge" ship, use the A and S keys to turn, the D key to thrust, and the F key to fire - and the Z key to go into "hyperspace", where you might not return. To control the "Needle" ship, the keys are left and right arrow to turn, up arrow to thrust, down arrow to fire, and the / (slash) key for hyperspace. The game simulates gravity and the players should avoid being pulled into the star in the center of the screen.

Spacewar (stylized "Spacewar!") is one of the earliest digital computer games. It is a two-player game, with each player taking control of a starship and attempting to destroy the other. A star in the center of the screen pulls on both ships and requires maneuvering to avoid falling into it. In an emergency, a player can enter hyperspace to return at a random location on the screen, but only at the risk of exploding if it is used too often.

Steve "Slug" Russell, Martin "Shag" Graetz, and Wayne Wiitanen of the fictitious "Hingham Institute" conceived of the game in 1961, with the intent of implementing it on a DEC PDP-1 at the Massachusetts Institute of Technology. After Alan Kotok obtained some sine and cosine routines from DEC, Russell began coding, and by February 1962 had produced his first version. It took approximately 200 hours of work to create the initial version. Additional features were developed by Dan Edwards, Peter Samson, and Graetz.

Between 1959 and 1961, a collection of interactive graphical programs had been created on the TX-0 experimental computer at MIT. These included Mouse in the Maze and Tic-Tac-Toe.

In the fall of 1961, a PDP-1 was installed in the "kludge room" of the Electrical Engineering Department, and even before its arrival, a group of students at a tenement on Hingham Street had been brainstorming ideas for programs that would demonstrate the new computer's capabilities in a compelling way. "We had this brand new PDP-1," Russell told Rolling Stone in a 1972 interview. "Somebody had built some little pattern-generating programs which made interesting patterns like a kaleidoscope. Not a very good demonstration. Here was this display that could do all sorts of good things! So we started talking about it, figuring what would be interesting displays. We decided that probably you could make a two-dimensional maneuvering sort of thing, and decided that naturally the obvious thing to do was spaceships." Russell had just finished reading the Lensman series by E.E. Smith and thought the stories would make a good basis for the program. "His heroes had a strong tendency to get pursued by the villain across the galaxy and have to invent their way out of their problem while they were being pursued. That sort of action was the thing that suggested Spacewar. He had some very glowing descriptions of spaceship encounters and space fleet maneuvers." Other influences cited by Graetz include E.E. Smith's Skylark novels and Japanese sci-fi tokusatsu movies.

The basic gameplay of Spacewar involves two armed spaceships called "the needle" and "the wedge" attempting to shoot one another while maneuvering in the gravity well of a star. The ships fire missiles that are unaffected by gravity (due to a lack of processing time). Each ship has a limited number of missiles and a limited supply of fuel. Each player controls one of the ships, and must attempt to simultaneously shoot at the other ship and avoid colliding with the star. The hyperspace feature can be used as a last-ditch means to evade enemy missiles, but the reentry from hyperspace would occur at a random location and there is an increasing probability of the ship exploding with each use.

Player controls include clockwise and counterclockwise rotation, thrust, fire, and hyperspace. Initially these were controlled using the front-panel test switches, with four switches for each player, but these proved to wear out very quickly under normal gameplay, and the location of the switches left one player off to one side of the CRT display and visually disadvantaged as a result. Most sites used custom control boxes wired into the same switches, although joysticks and other inputs were also used.

Some notes and further reading on the PDP-1, emulation and Spacewar!

spacewar_players.jpg Bringing the experience of Spacewar! on the PDP-1 to modern times presents a large range of challenges. The DEC PDP-1, a "mini-computer" that cost the equivalent of a million dollars in 1959, was not just a keyboard and screen but a variety of related components that showed status lights and printed out information using a typewriter. A total of around 50 were eventually sold over the lifetime of the product (roughly 10 years, 1959-1969). The Computer History Museum in Mountain View, California restored a PDP-1 to working order, allowing for an in-person experience of the machine on special occasions, and other PDP-1s have survived in various states of functionality or at least display.

To emulate the PDP-1, the MAME/MESS team (who did the hard work of developing the original program that the JSMESS emulator is based on) chose to include a variety of components on a single output screen, with the round cathode-ray tube display in the left corner, the output of the printer along the bottom, and the large collections of switches and lights in the upper right. While vastly different from the original, this version allows display of many of the core functions of the PDP-1 to be seen by a user.

The PDP-1 used physical switches to change program states, a functionality done by hitting certain keys on the keyboard. The same goes for the unusual method to indicate the "Control Panel" is being activated (holding down the LEFT CONTROL key). The program uses .RIM files, which are derived from the original paper tape medium the programs were available.

The Internet Archive has a large collection of PDP-1 related documentation, mirrored from the ongoing Bitsavers project. Among the PDP-1 related documents:
Steve_Russell_and_PDP-1.png
Spacewar! has an unquestioned place in the dawn of the computer age and the history of computer games. Punctuated throughout the mid 20th century are examples of computers and technology being used for games or amusement (Including NIM, Tennis for Two, Mouse in the Maze, and others), but Spacewar! and its appearance on a PDP-1 allowed not only the transfer of the program to other installations, but computer instructions that could allow it to be "ported" to a variety of platforms, up to and including the JSMESS emulator, which is running the original code from 1961, stored in a .RIM binary file and being read from by the virtual tape machine located in the emulator.

The game has no single-player mode, that is, no way for the computer to play one of the two roles to present challenge to a single person playing the game. Processing power on the machine is being used to such a degree that the gravity simulation does not affect shots because of the limited computing resources. Many of the early programs and video games did not provide a computer-generated "opponent" but were instead facilitators for human-against-human challenges. The JSMESS emulator uses the keyboard to simulate the different buttons for the game, but the original Spacewar! had early game controllers hacked together to allow players to sit near each other and play.

A version of Spacewar! turned into a coin-operated videogame provided one of the better selling coin-operated games in the early 1970s.

Much thanks are owed many different sets of folks, including the MESS/MAME team, the JSMESS team, and the original programmers of Spacewar!

Photo of Steve "Slug" Russell with a restored PDP-1 at the Computer History Museum taken by Alex Handy.


Identifier pdp1_spacewar
Scanner Internet Archive Python library 0.5.2
Publicdate 2014-04-25 17:51:38
Mediatype software
Addeddate 2014-04-25 17:51:38
Creator The "Hingham Institute"
Emulator pdp1
Emulator_ext rim
Date 1962
Year 1962
Pick 1
Stream_only true

Reviews

There are no reviews yet. Be the first one to write a review.
Stream Only
Uploaded by
Jason Scott
on 4/25/2014
Views
16,945
Favorites
3
PEOPLE ALSO FOUND
Historical Software Collection
by Daniel Smith
377
0
0
Historical Software Collection
by Beagle Brothers
570
0
0
Historical Software Collection
by Tim and Chris Stamper
1,078
0
0
Historical Software Collection
by Broderbund Software
146
0
0
Historical Software Collection
by Phil Shapiro and Dave Lyons
85
0
0
Historical Software Collection
by Russ Wetmore
211
0
0